package com.springboot.file.util.easyexcel.provider;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 导出参数存储工具类
 * 用于存储和管理导出任务的参数
 */
class ExportParamsStore {
    /**
     * 存储各实例的导出参数
     * key: 实现类的类名
     * value: 导出参数
     */
    private static final Map<String, Map<String, Object>> PARAMS_STORE = new ConcurrentHashMap<>();
    
    /**
     * 存储导出参数
     * 
     * @param className 提供者类名
     * @param params 导出参数
     */
    public static void storeParams(String className, Map<String, Object> params) {
        if (className != null && params != null) {
            PARAMS_STORE.put(className, new ConcurrentHashMap<>(params));
        }
    }
    
    /**
     * 获取存储的导出参数
     * 
     * @param className 提供者类名
     * @return 导出参数，若不存在返回空Map
     */
    public static Map<String, Object> getParams(String className) {
        return PARAMS_STORE.getOrDefault(className, new ConcurrentHashMap<>());
    }
    
    /**
     * 清理存储的导出参数
     * 
     * @param className 提供者类名
     */
    public static void clearParams(String className) {
        if (className != null) {
            PARAMS_STORE.remove(className);
        }
    }
    
    /**
     * 清理所有参数
     */
    public static void clearAllParams() {
        PARAMS_STORE.clear();
    }
    
    /**
     * 私有构造函数，防止实例化
     */
    private ExportParamsStore() {
        // 工具类，禁止实例化
    }
} 